package org.jctc.els.common.enums;

import java.util.HashMap;
import java.util.Map;

/**
 * 角色
 * @author Rxy
 * @date 2021/4/9 10:53
 */
public enum BaseRoleEnum {
    /**
     * 无角色
     */
    NOTHING(0L),
    /**
     * 系统管理员
     */
    SYSTEM(1L),
    /**
     * 学校管理员
     */
    SCHOOL(2L),
    /**
     * 老师
     */
    TEACHER(4L),
    /**
     * 学生
     */
    STUDENT(8L),
    /**
     * 家长
     */
    PARENT(16L);


    private static final Map<String, BaseRoleEnum> STRING_ROLE_ENUM_MAP = new HashMap<>();
    private static final Map<Long, BaseRoleEnum> LONG_ROLE_ENUM_MAP = new HashMap<>();

    static {
        for (BaseRoleEnum re : values()) {
            STRING_ROLE_ENUM_MAP.put(re.name(), re);
        }
        for (BaseRoleEnum re : values()) {
            LONG_ROLE_ENUM_MAP.put(re.role, re);
        }
    }

    public static BaseRoleEnum fromString(String roleKey) {
        return STRING_ROLE_ENUM_MAP.get(roleKey);
    }

    private Long role;

    BaseRoleEnum(Long role) {
        this.role = role;
    }

    public static BaseRoleEnum from(Long role) {
        return LONG_ROLE_ENUM_MAP.get(role);
    }

    public Long getRole() {
        return role;
    }


}

